import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'

import Components from 'unplugin-vue-components/vite'

import AutoImport from 'unplugin-auto-import/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

import ElementPlus from 'unplugin-element-plus/vite'
// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  //   loadEnv 接收三个参数，
  // mode：模式
  // envDir：环境变量配置文件所在目录
  // prefix：接受的环境变量前缀，默认为 VITE_
  // 在vite中默认是VITE_，为 ''，则加载所有环境变量

  const config = loadEnv(mode, './')
  console.log("-------------------------------");
  console.log(mode)
  console.log(config)
  console.log("-------------------------------")
  console.log('config.VITE_APP_BASE_API', config.VITE_APP_BASE_API);
  return {
    plugins: [
      vue(),

      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        //配置elementPlusResolver
        resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
      }),
      // Components({
      //   /* options */
      // })

      // ElementPlus({
      //   useSource: true,
      // }),

    ],
    css: {
      preprocessorOptions: {//导入样式表
        scss: {
          // 全局变量文件
          additionalData: `@use "@/styles/element/index.scss" as *;`,
        }
      }
    },
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },
    build: {
      /** 单个 chunk 文件的大小超过 2048KB 时发出警告 */
      chunkSizeWarningLimit: 2048,
      /** 禁用 gzip 压缩大小报告 */
      reportCompressedSize: false,
      /** 打包后静态资源目录 */
      assetsDir: "assets",
      rollupOptions: {
        output: {
          /**
           * 分块策略
           * 1. 注意这些包名必须存在，否则打包会报错
           * 2. 如果你不想自定义 chunk 分割策略，可以直接移除这段配置
           */
          manualChunks: {
            vue: ["vue", "vue-router", "pinia", "axios"],
            element: ["element-plus", "@element-plus/icons-vue"],
            echarts: ["echarts"],
            // vxe: ["vxe-table", "vxe-table-plugin-element", "xe-utils"]
          }
        }
      }
    },
    server: {
      proxy: {
        // '/api': 'https://pd.shennaji.cn'
        // '/platform': 'http://47.117.36.70/platform'
        '/platform': {
          target: 'http://192.168.10.14:8080',
          // target: 'http://47.117.36.70',
          changeOrigin: true,
          pathRewrite: { '^/platform': '' }
        }
        // '/api': config.VITE_APP_BASE_API
      }
    }
  }
})
